ci: linux amd64 only — drop arm64 to unblock v0.2.0 release#21
Merged
Conversation
Previous attempt set CC=aarch64-linux-gnu-gcc via a goreleaser env
template ({{- if eq .Arch \"arm64\" -}} CC=… {{- end -}}). The template
either didn't expand or didn't apply per-arch — host gcc tried to
assemble arm64 instructions, blew up with:
gcc_arm64.S:30: Error: no such instruction: \`stp x29,x30,[sp,'
Could fix it with two separate goreleaser build entries (one per arch,
each with its own env), but for a solo hobby project the value of arm64
Linux binaries is small — those users can \`go install\`. Drop arm64
from .goreleaser.yml goarch list and remove the cross-compiler install
from release.yml.
Re-add when someone actually asks. The pattern (split into two builds)
is documented in the comment above goarch.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
PR #20 limited the release to Linux but kept arm64 in the matrix, with
`CC=aarch64-linux-gnu-gcc` set via a goreleaser env template:
```yaml
env:
```
The template didn't apply per-arch — host gcc tried to assemble ARM64
instructions, fell over with:
```
gcc_arm64.S:30: Error: no such instruction: `stp x29,x30,[sp,'
gcc_arm64.S:34: Error: operand size mismatch for `mov'
```
What changes
and how to re-add (two separate build blocks, each with its own env).
(no longer needed).
Trade-off
Linux arm64 users (Raspberry Pi 5, AWS Graviton boxes, ARM workstations)
won't have a pre-built binary on the GitHub Releases page. They can
`go install github.com/shahid-io/inode@latest` — works fine on arm64,
the source compiles natively against the local toolchain.
Test plan